package org.yyj.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import org.yyj.dao.*;
import org.yyj.dao.impl.*;
import org.yyj.model.*;

//import javax.servlet.ServletOutputStream;
//import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.List;
import java.util.Map;

public class XsAction extends ActionSupport {
    XsDao xsDao;
    private Xsb xs; //定义学生对象
    private Kcb kcb;//定义课程对象
    private File zpFile;//用于获取照片文件
    private Zyb zyb;//定义专业对象
    //生成getter 和 setter 方法
    public File getZpFile(){
        return zpFile;
    }
    public void setZpFile(File zpFile){
        this.zpFile=zpFile;
    }
    public Kcb getKcb(){
        return kcb;
    }
    public void setKcb(Kcb kcb){
        this.kcb=kcb;
    }
    public Zyb getZyb(){
        return zyb;
    }
    public void setZyb(Zyb zyb){
        this.zyb=zyb;
    }
    public Xsb getXs(){
        return xs;
    }
    public void setXs(Xsb xs){
        this.xs=xs;
    }
    //默认情况下，用该方法获得当前学生的个人信息
    @Override
    public String execute() throws Exception{
        //获得Session对象
        Map session=(Map) ActionContext.getContext().getSession();
        //从Session中取出当前用户
        Dlb user=(Dlb) session.get("user");
        //创建Xsdao接口对象
        xsDao=new XsDaoImp();
        //根据登录学号得到该学生信息
        System.out.println("定位");
        System.out.println(xsDao.getOneXs(user.getXh()));
        Xsb xs=xsDao.getOneXs(user.getXh());
        //保存学生信息
        Map requst=(Map) ActionContext.getContext().get("request");
        requst.put("xs",xs);
        return SUCCESS;
    }

/*    //读取照片信息
    public String getImage()throws Exception{
        //得到照片的字节数组
        xsDao=new XsDaoImp();
        byte[] zp=xsDao.getOneXs(xs.getXh()).getZp();
        HttpServletResponse response=ServletActionContext.getResponse();
        response.setContentType("image/jpeg");
        //得到输出流
        ServletOutputStream os=response.getOutputStream();
        if(zp!=null&&zp.length>0){
            for (int i=0;i<zp.length;i++){
                os.write(zp[i]);
            }
        }
        //不转到任何页面
        return NONE;
    }*/
    //进入修改学生信息的页面
    public String updateXsInfo()throws Exception{
        //获取当前用户对象
        Map session=(Map) ActionContext.getContext().getSession();
        Dlb user=(Dlb) session.get("user");
        xsDao=new XsDaoImp();
        ZyDao zyDao=new ZyDaoImp();
        //取出所有专业信息，因为在修改学生信息时，专业栏是用下拉列表选择专业，而非学生自己随便填写
        List zys=zyDao.getAll();
        //得到当前学生信息
        Xsb xsb=xsDao.getOneXs(user.getXh());
        Map request=(Map) ActionContext.getContext().get("request");
        request.put("zys",zys);
        request.put("xs",xsb);
        return  SUCCESS;
    }

}
